/// 大餅乾先餵飽大胃口的

// step 1# 比较函数：用于qsort排序，从小到大排列
int cmp(const void* a, const void* b) {
    return *(int*)a - *(int*)b;
}

// step 2# 主函数：找出最多能满足多少小孩
int findContentChildren(int* g, int gSize, int* s, int sSize){
    // step 2.1# 如果没有饼干，直接返回0
    if(sSize == 0)
        return 0;

    // step 2.2# 将小孩的胃口数组g和饼干大小数组s升序排序
    qsort(g, gSize, sizeof(int), cmp);
    qsort(s, sSize, sizeof(int), cmp);

    // step 2.3# 初始化已满足的小孩数量count，和当前可以用的最大饼干位置start
    int count = 0;
    int start = sSize - 1;

    // step 2.4# 从胃口最大的小孩开始，往小胃口遍历
    for(int i = gSize - 1; i >= 0; i--) {
        // step 2.4.1# 如果当前最大饼干能满足当前小孩
        if(start >= 0 && s[start] >= g[i]) {
            start--;    // step 2.4.2# 用掉当前饼干，指针左移
            count++;    // step 2.4.3# 满足一个小孩，计数加一
        }
    }

    // step 2.5# 返回总共满足的小孩数量
    return count;
}
